/**
 * formatDate(date, 'yyyy-MM-dd hh:mm')
 * @param date
 * @param fmt
 * @returns {*}
 */
export function formatDate(date, fmt) {
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  };
  for (let k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + '';
      fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str));
    }
  }
  return fmt;
}

/**
 * formatTimeSpan(date, 'yyyy-MM-dd hh:mm')
 * @param timeSpan 秒
 * @returns {*}
 */
export function formatTimeSpan(timeSpan) {
  let hours = 0;
  let minutes = 0;
  let seconds = 0;
  let fmt;
  if (timeSpan >= 3600) {
    hours = Math.floor(timeSpan / 3600);
  }
  if (timeSpan >= 60) {
    minutes = Math.floor((timeSpan - hours * 3600) / 60);
  }
  seconds = timeSpan % 60;
  if (hours > 0) {
    fmt = hours + '小时' + (minutes > 0 ? padLeftZero(minutes) + '分钟' : '00分钟') + (seconds > 0 ? padLeftZero(seconds) + '秒' : '00秒');
  } else if (minutes > 0) {
    fmt = padLeftZero(minutes) + '分钟' + (seconds > 0 ? padLeftZero(seconds) + '秒' : '00秒');
  } else {
    fmt = seconds > 0 ? padLeftZero(seconds) + '秒' : '00秒';
  }
  return fmt;
}

function padLeftZero(num) {
  let str = num.toString();
  return ('00' + str).substr(str.length);
}
